/**
 * 应用常量定义
 */
export class Constants {
  /**
   * 页面路由常量
   */
  static readonly HOME_PAGE: string = 'pages/HomePage';
  static readonly ROLE_LIST_PAGE: string = 'pages/RoleListPage';
  static readonly ROLE_DETAIL_PAGE: string = 'pages/RoleDetailPage';
  static readonly CHAT_PAGE: string = 'pages/ChatPage';
  static readonly HISTORY_PAGE: string = 'pages/HistoryPage';
  static readonly PROFILE_PAGE: string = 'pages/ProfilePage';
  static readonly SETTINGS_PAGE: string = 'pages/SettingsPage';
  static readonly LOGIN_PAGE: string = 'pages/LoginPage';
  static readonly REGISTER_PAGE: string = 'pages/RegisterPage';
  static readonly MAIN_PAGE: string = 'pages/MainPage';
  static readonly IMAGE_GENERATION_PAGE: string = 'pages/ImageGenerationPage';
  static readonly ABOUT_PAGE: string = 'pages/AboutPage';
  static readonly IMAGE_CHAT_PAGE: string = 'pages/ImageChatPage';
  static readonly DIY_PRODUCT_PAGE: string = 'pages/DIYProductPage';

  /**
   * 颜色常量 - 现代科技主题
   */
  static readonly PRIMARY_COLOR: string = '#FF4500';
  static readonly SECONDARY_COLOR: string = '#FF8C00';
  static readonly TEXT_PRIMARY_COLOR: string = '#333333';
  static readonly TEXT_SECONDARY_COLOR: string = '#666666';
  static readonly TEXT_HINT_COLOR: string = '#999999';
  static readonly BACKGROUND_COLOR: string = '#F8F9FA';

  /**
   * 现代简约主题配色系统
   */
  // 背景渐变 - 更柔和的色调
  static readonly MODERN_BG_PRIMARY: string = '#f8fafc';       // 浅灰白
  static readonly MODERN_BG_SECONDARY: string = '#f1f5f9';     // 极浅蓝灰
  static readonly MODERN_BG_GRADIENT_START: string = '#ffffff'; // 纯白
  static readonly MODERN_BG_GRADIENT_END: string = '#f8fafc';   // 浅灰白

  // 功能色彩 - 低饱和度专业色调
  static readonly MODERN_BLUE: string = '#3b82f6';             // 现代蓝
  static readonly MODERN_INDIGO: string = '#6366f1';           // 靛蓝
  static readonly MODERN_PURPLE: string = '#8b5cf6';           // 紫色
  static readonly MODERN_PINK: string = '#ec4899';             // 粉色
  static readonly MODERN_GREEN: string = '#10b981';            // 绿色
  static readonly MODERN_ORANGE: string = '#f59e0b';           // 橙色
  static readonly MODERN_RED: string = '#ef4444';              // 红色
  static readonly MODERN_GRAY: string = '#6b7280';             // 中性灰

  // 文字颜色 - 深色主题
  static readonly MODERN_TEXT_PRIMARY: string = '#1f2937';     // 主要文字
  static readonly MODERN_TEXT_SECONDARY: string = '#6b7280';   // 次要文字
  static readonly MODERN_TEXT_HINT: string = '#9ca3af';        // 提示文字
  static readonly MODERN_TEXT_ACCENT: string = '#3b82f6';      // 强调文字

  // 卡片和容器
  static readonly MODERN_CARD_BG: string = '#ffffff';          // 卡片背景
  static readonly MODERN_CARD_BORDER: string = '#e5e7eb';      // 卡片边框
  static readonly MODERN_CARD_SHADOW: string = 'rgba(0, 0, 0, 0.05)'; // 卡片阴影
  static readonly MODERN_CARD_HOVER: string = '#f9fafb';       // 卡片悬停

  // 兼容旧版本的彩色主题（保持向后兼容）
  static readonly COLORFUL_BG_PRIMARY: string = '#f8fafc';
  static readonly COLORFUL_BG_SECONDARY: string = '#f1f5f9';
  static readonly COLORFUL_BG_TERTIARY: string = '#e2e8f0';
  static readonly COLORFUL_BG_QUATERNARY: string = '#cbd5e1';

  static readonly COLORFUL_NEON_BLUE: string = '#3b82f6';
  static readonly COLORFUL_ELECTRIC_BLUE: string = '#6366f1';
  static readonly COLORFUL_MINT_GREEN: string = '#10b981';
  static readonly COLORFUL_PURPLE_GLOW: string = '#8b5cf6';
  static readonly COLORFUL_ORANGE_BRIGHT: string = '#f59e0b';
  static readonly COLORFUL_PINK_BRIGHT: string = '#ec4899';

  static readonly COLORFUL_TEXT_PRIMARY: string = '#1f2937';
  static readonly COLORFUL_TEXT_SECONDARY: string = '#6b7280';
  static readonly COLORFUL_TEXT_HINT: string = '#9ca3af';
  static readonly COLORFUL_TEXT_ACCENT: string = '#3b82f6';

  static readonly COLORFUL_GLASS_BG: string = 'rgba(255, 255, 255, 0.8)';
  static readonly COLORFUL_GLASS_BORDER: string = 'rgba(229, 231, 235, 0.8)';
  static readonly COLORFUL_CARD_BG: string = '#ffffff';
  static readonly COLORFUL_CARD_HOVER: string = '#f9fafb';

  /**
   * 尺寸常量
   */
  static readonly BORDER_RADIUS_SMALL: number = 8;
  static readonly BORDER_RADIUS_MEDIUM: number = 16;
  static readonly BORDER_RADIUS_LARGE: number = 24;
  static readonly PADDING_SMALL: number = 8;
  static readonly PADDING_MEDIUM: number = 16;
  static readonly PADDING_LARGE: number = 24;

  /**
   * 字体大小常量
   */
  static readonly FONT_SIZE_SMALL: number = 12;
  static readonly FONT_SIZE_MEDIUM: number = 14;
  static readonly FONT_SIZE_LARGE: number = 16;
  static readonly FONT_SIZE_XLARGE: number = 18;
  static readonly FONT_SIZE_XXLARGE: number = 20;

  /**
   * 3D效果相关常量
   */
  // 3D动画时长
  static readonly ANIMATION_DURATION_FAST: number = 200;
  static readonly ANIMATION_DURATION_NORMAL: number = 300;
  static readonly ANIMATION_DURATION_SLOW: number = 500;
  static readonly ANIMATION_DURATION_PAGE_ENTER: number = 800;

  // 3D变换参数
  static readonly SCALE_PRESSED: number = 0.95;
  static readonly SCALE_FOCUSED: number = 1.02;
  static readonly ROTATE_ANGLE_SMALL: number = 1;
  static readonly ROTATE_ANGLE_MEDIUM: number = 2;
  static readonly TRANSLATE_Z_SMALL: number = 3;
  static readonly TRANSLATE_Z_MEDIUM: number = 5;

  // 3D阴影参数
  static readonly SHADOW_RADIUS_SMALL: number = 8;
  static readonly SHADOW_RADIUS_MEDIUM: number = 15;
  static readonly SHADOW_RADIUS_LARGE: number = 25;
  static readonly SHADOW_OPACITY_LIGHT: string = '0.05';
  static readonly SHADOW_OPACITY_MEDIUM: string = '0.08';
  static readonly SHADOW_OPACITY_STRONG: string = '0.15';

  // 3D模糊效果
  static readonly BLUR_RADIUS_SMALL: number = 3;
  static readonly BLUR_RADIUS_MEDIUM: number = 8;
  static readonly BLUR_RADIUS_LARGE: number = 15;

  // 3D弹簧动画参数
  static readonly SPRING_RESPONSE: number = 0.6;
  static readonly SPRING_DAMPING: number = 0.8;

  /**
   * API相关常量
   */
  static readonly API_BASE_URL: string = 'http://10.20.147.125:3000'; // 根据实际IP地址修改
  static readonly API_TIMEOUT: number = 3000; // 3秒

  /**
   * DeepSeek API相关常量
   */
  static readonly DEEPSEEK_API_BASE_URL: string = 'https://api.deepseek.com';
  static readonly DEEPSEEK_API_CHAT_COMPLETIONS: string = '/chat/completions';
  static readonly DEEPSEEK_MODEL_CHAT: string = 'deepseek-chat';
  static readonly DEEPSEEK_MODEL_REASONER: string = 'deepseek-reasoner';
  static readonly DEEPSEEK_API_TIMEOUT: number = 60000; // 60秒，AI响应需要更长时间
  // 注意：API密钥已移除，现在从后端服务器获取

  /**
   * 火山引擎图片生成API相关常量
   */
  static readonly VOLCENGINE_API_BASE_URL: string = 'https://ark.cn-beijing.volces.com';
  static readonly VOLCENGINE_API_IMAGE_GENERATION: string = '/api/v3/images/generations';
  static readonly VOLCENGINE_MODEL_IMAGE: string = 'doubao-seedream-3-0-t2i-250415';
  static readonly VOLCENGINE_API_TIMEOUT: number = 60000; // 60秒，图片生成可能较慢
  // 注意：API密钥已移除，现在从后端服务器获取

  /**
   * 火山引擎语音合成API相关常量
   * 注意：这些配置可能需要更新，如果遇到3031错误请检查火山引擎控制台
   */
  static readonly VOLCENGINE_TTS_API_BASE_URL: string = 'https://openspeech.bytedance.com';
  static readonly VOLCENGINE_TTS_API_ENDPOINT: string = '/api/v1/tts';
  // 火山引擎TTS认证配置
  static readonly VOLCENGINE_TTS_APP_ID: string = '3581063476';
  static readonly VOLCENGINE_TTS_ACCESS_TOKEN: string = 'cWPceMgVNNsFvxejlQ5qics6wEbRjd-B';
  static readonly VOLCENGINE_TTS_SECRET_KEY: string = 'qRFMfokjp-ZkjxXpYrjd0cd4Dkylqp_P';
  static readonly VOLCENGINE_TTS_CLUSTER: string = 'volcano_tts';
  // 使用控制台中可用的音色，提高成功率
  // https://www.volcengine.com/docs/6561/1257544音色列表
  // static readonly VOLCENGINE_TTS_VOICE_TYPE: string = 'zh_female_wanqudashu_moon_bigtts';
  static readonly VOLCENGINE_TTS_VOICE_TYPE: string = 'zh_female_sophie_conversation_wvae_bigtts';

  static readonly VOLCENGINE_TTS_RESOURCE_ID: string = 'volc.tts.default';
  static readonly VOLCENGINE_TTS_SPEED_RATIO: number = 1.0; // 语速
  static readonly VOLCENGINE_TTS_VOLUME_RATIO: number = 1.0; // 音量
  static readonly VOLCENGINE_TTS_PITCH_RATIO: number = 1.0; // 音调
  static readonly VOLCENGINE_TTS_API_TIMEOUT: number = 30000; // 30秒

  /**
   * API路径常量
   */
  static readonly API_AUTH_REGISTER: string = '/api/auth/register';
  static readonly API_AUTH_LOGIN: string = '/api/auth/login';
  static readonly API_AUTH_ADMIN_REGISTER: string = '/api/auth/admin/register';
  static readonly API_AUTH_ADMIN_LOGIN: string = '/api/auth/admin/login';
  static readonly API_ROLES: string = '/api/airoles';
  static readonly API_INTERACTIONS: string = '/api/interactions';
  static readonly API_FAVORITES: string = '/api/favorites';
  static readonly API_UPLOAD: string = '/api/upload';
  static readonly API_UPLOAD_MULTIPLE: string = '/api/upload/multiple';
  static readonly API_SHARED_IMAGES: string = '/api/shared-images';
  static readonly API_USER_IMAGES: string = '/api/shared-images/user';

  /**
   * ET客户端API密钥获取接口
   */
  static readonly API_ET_KEYS: string = '/api/et/keys';
  static readonly API_ET_KEYS_ALL: string = '/api/et/keys/all';
  static readonly API_ET_KEYS_USAGE: string = '/api/et/keys/usage';

  /**
   * 本地存储键名常量
   */
  static readonly STORAGE_KEY_TOKEN: string = 'token';
  static readonly STORAGE_KEY_USER_INFO: string = 'user_info';
  static readonly STORAGE_KEY_SETTINGS: string = 'app_settings';

  static readonly USER_AVATAR: string = 'app.media.mrtx'; // 新增：默认用户头像
}
